Presently, the ubiquity of Internet connectivity and an unprecedented growth in data communications access bandwidth has been fueling the demand for more versatile forms of on-line content. In particular, there has been an increasing demand for multi-media content, such as audio and video. Existing Internet applications have yet to provide effective delivery of bandwidth-intensive multi-media content to end-users.
Currently, video is one of the most bandwidth-demanding forms of on-line content. Traditionally, video, particularly live video, as well as audio, have been broadcast over cable programming networks. As a result, bandwidth-demanding video signals, such as TV channels, have only been offered to end-users by the cable programming networks. Although broadband cable service can provide both digital data and cable programming to end-users, cable programming is often provided on cable media that is physically separate from the cable media used for providing Internet connectivity, such as DSL or Ethernet network services. End-users are not able to enjoy audio or video content over broadband cable networks that offer only Internet connectivity and not cable programming.
Delivering video content over an Internet connection hinges upon several constraints. Traditionally, access bandwidth has presented one bottleneck. For example, dial-up Internet services generally limit access bandwidth to 56 Kbps. Fortunately, recent developments in access technologies, such as ADSL, VDSL, direct Ethernet connection, and WLAN, have largely removed this bottleneck by bringing multi-Mbps connections to end-users. Despite these advances, server overloading and network congestion still pose potential constraints.
Conventionally, media content is delivered based on a client-server model. An end-user starts a client program, which contacts a server where the content is stored and downloads the content from the server. Although the end-user's Internet connection may provide sufficient bandwidth to accommodate one or more video channels, the server may be overloaded if a large number of other end-users are simultaneously requesting streaming video. In addition, the connection between the server and the network may be congested with other network traffic. High-performance servers and high-bandwidth network connections can mitigate these problems, but such solutions inevitably increase the costs of providing Internet service to the end-users.
Recently, peer-to-peer (P2P) overlay networks have attracted growing interest as one possible solution. A P2P network is typically formed as a logical layer operating over a conventional network infrastructure, such as implemented in the Internet. In a P2P network, peer machines are aware of the states of other peer machines and a group of peer nodes can directly exchange data or services among themselves. The task of content delivery is not undertaken by one particular server. Thus, P2P networks provide a favorable environment for delivering streaming data, such as video, because server overloading is avoided and network congestion is reduced.
Nevertheless, reducing content-switching time remains a key challenge in P2P content delivery. Typically, a peer machine first gathers information about the other peer nodes that store the media content. Next, the peer machine contacts selected peer nodes and requests the content. Once received, the peer machine often stores the content into a buffer before presenting the content with, for example, media-content presentation software, such as a media player. The process can consume significant time. For example, up to one minute may be needed to switch channels when viewing television (TV) programs delivered as streaming video over a P2P network. The experience can be frustrating for end-users accustomed to the fast channel-switching time afforded by cable programming networks.
Hence, there is a need for a system and a method for facilitating expedited content delivery with reduced content-switching time.